// SetSoundChannelPlayThruState
// Sequence Grabber の「Sound Settings」ダイアログの「Source」
// タブにあるメニューポップアップコントロールの機能を再現する
// inSoundChannel - Sequence Grabber サウンドチャネル
// inControl - 3 つのエントリから成るポップアップメニューコントロール
//
ComponentResult SetSoundChannelPlayThruState(const SGChannel inSoundChannel,
const ControlRef inControl)
{
SInt32 value, usage;
ComonentResult err;
value = GetControl32BitValue(inControl);
switch (value) {
// 常に off
case 1:
value = 0;
break;
// プレビュー中および録音中は on
case 2:
value = seqGrabPreview | seqGrabPlayDuringRecord;
break;
// プレビュー中のみ on
case 3:
value = seqGrabPreview;
break;
}
err = SGGetChannelUsage(inSoundChannel, &usage);
if (noErr == err) {
usage &= ‾(seqGrabPreview | seqGrabPlayDuringRecord);
usage |= value;
err = SGSetChannelUsage(inSoundChannel, usage);
}
return err;
}
|